.. :validated: 3.2.0

.. _uain_automount_freeipa_comfiguration:

Управление автомонтированием через FreeIPA UI
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Управляя рабочими станциями в домене **FreeIPA** администраторы могут настраивать карты монтирования централизованно. Ниже описан алгоритм работы механизма.

* Утилита ``automount`` поддерживает извлечение информации через механизм **NSS**.
* В файле ``/etc/auto.master`` по умолчанию присутствует запись ``+auto.master``, которая указывает на то, что в главную карту должно включаться содержимое карты с именем ``auto.master`` через механизм **NSS**.
* В файле ``/etc/nsswitch.conf`` в строке ``automount: sss`` в качестве источника для ``automount`` указан модуль **sss**, который извлекает ее путем обращения к соответствующему ответчику службы **SSSD**.
* Служба **SSSD** извлекает из домена карты автоматического монтирования для одной конкретной локации, имя которой указано параметром ``ipa_automount_location`` в конфигурационном файле ``/etc/sssd/sssd.conf`` секции **domain**.

В качестве инструмента применения и автоматизации настроек автомонтирования общих ресурсов на конечных клиентских машинах используется утилита ``ipa-client-automount``.

Далее приведены примеры настройки для использования централизованных карт монтирования общих ресурсов через **FreeIPA UI**.

Создание расположения (локации) автомонтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Расположение автомонтирования (англ. automount location) -- контейнер для хранения карт монтирования. С помощью расположений (локаций) можно создать изолированные пространства имен распределенной файловой системы для разных категорий рабочих станций. Локации автомонтирования используются для того, чтобы определить для групп компьютеров разные настройки автомонтирования, а значит и разные условия доступа к общим ресурсам.

В интерфейсе **FreeIPA** список существующих локаций размещен в **Сетевые службы → Автомонтирование** (Network Services → Automount). По умолчанию в домене средствами **FreeIPA** создается расположение ``default``.

.. figure:: images/loclist.png
    :name: loclist

    Список локаций автомонтирования 

Создание новой локации осуществляется нажатием на кнопку **Add**. Для этого достаточно указать название новой локации.

.. figure:: images/locadd.png
    :name: locadd

    Создание локации testlocation

Такой сущности как «расположение автомонтирования» в утилите ``automount`` нет, это доработка со стороны **FreeIPA** и **SSSD**. Информация о локациях автомонтирования находится в **LDAP** в разделе ``cn=automount,dc=example,dc=com``.

.. figure:: images/locldap.png
    :name: locldap

    LDAP-записи о локациях

Создание и настройка карт монтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Внутри расположения по умолчанию есть два списка соответствия автомонтирования. Списки соответствия также называют **картами монтирования**. Главным списком (картой) является ``auto.master``, ключи этого списка будут включены в главную карту монтирования на рабочей станции пользователя. Имя ``auto.master`` является предопределенным, т.к. на рабочих станциях пользователей в главной карте ``/etc/auto.master`` по умолчанию присутствует строка ``+auto.master``. Если вы удалите эту карту по ошибке, то ее можно создать вручную, главное -- сохранить тоже самое имя для этой карты. Подробнее о картах монтирования см. :numref:`automount_maps`.

При нажатии на одну из локаций в списке **Сетевые службы → Автомонтирование** выводится список карт монтирования этой локации. Пример для вновь созданной локации ``testlocation``:

.. figure:: images/locmaps.png
    :name: locmaps

    Список карт монтирования в локации testlocation

Создание новой карты монтирования осуществляется нажатием на кнопку **Add**. Карты в интерфейсе **FreeIPA** могут быть двух типов -- прямые и косвенные (см. :numref:`automount_maps`). Такое деление карт монтирования условное.

    * При добавлении «прямой» карты интерфейс **FreeIPA** не создаст ключ прямого монтирования «/-» в главной карте ``auto.master``. Ссылку на новую карту необходимо будет делать вручную в той карте, в которой необходимо (в самом простом варианте -- ``auto.master``). Таким образом, через этот интерфейс можно добавить не готовые «прямые карты», а карты, на которые изначально не указывает ни один ключ.
    * При добавлении «непрямой» карты допускается использовать ключ «/-» и указать в качестве родительской карты ``auto.master`` (если оставить соответствующее поле пустым), в этом случае будет добавлена карта прямого монтирования. 

Поэтому предлагается относиться к этому переключателю ``FreeIPA UI`` иначе: он позволяет создать карту без ссылок (значение «прямой») или создать карту и сделать запись ключ-значение в родительской карте (иначе -- ссылку) на создаваемую карту.

.. figure:: images/mapdiradd.png
    :name: mapadd

    Создание прямой карты монтирования testdirectmap


.. figure:: images/mapdiradd2.png
    :name: mapadd

    Создание прямой карты монтирования testdirectmap, добавление ссылки

.. figure:: images/mapindir.png
    :name: mapindir

    Создание непрямой карты монтирования testindirectmap на auto.master

.. figure:: images/mapindir2.png
    :name: mapindir2

    Создание непрямой карты монтирования testindirectmap на auto.master

.. note:: 

    Создание непрямых карт монтирования через **FreeIPA UI** множественной вложенности в текущей версии продукта может приводить к ошибкам на уровне службы ``autofs`` при попытке найти информацию в **LDAP** по ссылке ``-fstype=autofs ldap:<mapname>``. 

Таким образом, рекомендуется в текущей версии продукта пользоваться прямыми картами монтирования, которые включаются в ``auto.master`` с помощью ссылки ``«/-»``.

Создание и настройка точек монтирования
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Подключение общих ресурсов с файловых серверов **SMB** настраивается на этапе создания точек монтирования. При добавлении общей папки назначается ключ монтирования (путь к директории на **клиентской** машине, через которую пользователь будет получать доступ к удаленной папке), а также настройки (флаги) для запуска утилиты ``mount`` (поле **mount information**). После применения на клиенте утилиты ``ipa-client-automount`` для локации, содержащей карту монтирования с этой точкой монтирования, создается **ловушка монтирования**. При попытке пользователя открыть директорию служба ``autofs`` вызывает утилиту ``mount`` с флагами, указанными в поле **mount information**. Подробнее о возможных настройках см. ``man autofs``, ``man automount``, ``man mount``.

Для примера создадим точку монтирования в прямой карте ``testdirectmap``.

* Ключ монтирования -- ``/test``. Таким образом, при применении автомонтирования удаленная папка будет доступна с клиента по пути ``test``.
* Настройки монтирования -- ``-fstype=cifs,user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID ://smb01.testpool01/myfolder``. Разбор настроек:

    * из ``-fstype=cifs`` будет собрано ``mount -t cifs``;
    * опции ``user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID`` проброшено в флаг ``mount -o user,sec=krb5i,cruid=$UID,uid=$UID,gid=$UID``;
    * ``://smb01.testpool01/myfolder`` -- путь к физической директории на файловом сервере, где ``smb01.testpool01`` -- это имя файлового сервера в локальной сети, а ``/myfolder`` -- путь к директории. 

Предварительно перед созданием точек монтирования на физические директории следует настроить сами физические директории через интерфейс **ALD Pro** (см. :numref:`folder_server_configuration`).  

.. attention:: 

    Путь к директории указывается не относительно корня файлового сервера, а относительно настроек **Samba**-сервера. В этих настройках прописывается префикс-директория на файловом сервере, которая по умолчанию задается в файлах ``/etc/samba/smb.conf`` и ``/etc/samba/share.conf``. По умолчанию общие папки создаются в ``/opt/samba_shares``.

Создадим 2 точки монтирования на одну и ту же директорию. 

.. figure:: images/point1.png
    :name: point1

    Создание точки монтирования в карту testdirectmap в /test


.. figure:: images/point2.png
    :name: point2

    Создание точки монтирования в карту testdirectmap в /testindir11/test

Таким образом на клиентской машине должно будет появиться 2 новых ловушки монтирования по указанным путям. В директории на файловом сервере лежит файл ``file`` и папка ``test``.

.. figure:: images/point3.png
    :name: point3

    Наполнение директории на файловом сервере

.. _automount_client_machine:

Применение настроек автомонтирования на клиентской машине
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

На данном этапе вся информация о картах монтирования, точках и т.п. расположена в **LDAP**. Данные настройки необходимо использовать на клиентской машине для того, чтобы пользователь мог получить доступ к удаленным папкам через точки монтирования. Для этого используется утилита ``ipa-client-automount``, которая принимает флаг ``--location``. Необходимо использовать локацию, в которой были ранее настроены точки и карты монтирования (по умолчанию это ``default``, в случае данного примера -- ``newloc``).

.. note:: 

    Использование утилиты вручную допускается администраторами **ALD Pro** для точечных решений, однако для масштабных инфраструктур на десятки или сотни клиентов рекомендуется использовать параметр ГП, о котором подробно рассказано в следующем разделе.

Если рабочая станция была ранее настроена на работу с другой локацией, сначала нужно выполнить удаление настроек, а затем присоединение к требуемой локации:

.. code-block:: bash

    root@client01:/# ipa-client-automount --uninstall
    Restoring configuration
    root@client01:/# ipa-client-automount --location newloc
    Searching for IPA server...
    IPA server: DNS discovery
    Location: newloc
    Continue to configure the system with these values? [no]: yew
    Configured /etc/default/nfs-common
    Configured /etc/idmapd.conf
    Restarting sssd, waiting for it to become available.
    Started autofs

Служба ``autofs`` будет автоматически перезапущена, поэтому на каталоги будут установлены ловушки монтирования:

.. code-block:: bash

    root@client01:/# findmnt
    TARGET                       SOURCE        FSTYPE     OPTIONS
    ...
    ├─/testindir11/test          testindirect  autofs     rw,relatime,fd=6,pgrp=5999,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73026
    ├─/test_point                testdirectmap autofs     rw,relatime,fd=6,pgrp=5999,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=73026

Теперь при попытке получить доступ к содержимому директории ``/test_point`` произойдет запуск утилиты ``mount`` (о чем будет запись в ``/var/log/syslog``). В качестве credentials будут использованы **UID** и **TGT**-билет того пользователя, под которым залогинился пользователь. Например пользователь ``root`` c ``$UID = 0`` не получит доступ к содержимому директории, поскольку на него не выписан **Kerberos**-билет, а также на ``smb`` файловом сервере его нет в списке допущенных к содержимому папки:

.. code-block:: bash

    root@client01:/# cd test_point/
    bash: cd: test_point/: Нет такого файла или каталога

.. figure:: images/smbdir1.png
    :name: smbdir1

    Настройки доступов папки на файловом сервере

В списке допущенных есть только пользователь admin, который действительно может получить доступ к папке согласно настройкам доступов папки, заданным ранее в **ALD Pro**.

.. code-block:: bash

    admin@client01:/$ cd test_point/
    admin@client01:/test_point$ ls -la
    итого 4
    drwxr-xr-x  2 admin admins    0 июл  1 09:24 .
    drwxr-xr-x 27 root  root   4096 июл  1 09:23 ..
    -rwxr-xr-x  1 admin admins    0 июл  1 09:23 file
    drwxr-xr-x  2 admin admins    0 июл  1 09:24 test


Параметр групповой политики "Служба автомонтирования"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

С версии 3.0 **ALD Pro** в официальной комплектации продукта появляется параметр компьютера **Служба автомонтирования** для групповых политик. Параметр позволяет настроить автомонтирование общих **Samba**-папок на клиентской рабочей станции **Astra Linux**. Базовая задача параметра -- запустить ``ipa-client-automount --location <LOC>``.

Основные сценарии использования параметра –- применение и сброс локации автомонтирования для подразделений, содержащих компьютеры. При применении локации на каждый компьютер подразделения применяются ловушки монтирования, ведущие к директориям на файловых серверах. Доступ к содержимому папок осуществляется исходя из разрешений, выданных shared-директориям на пользователей или группы пользователей. Все пользователи видят ловушки монтирования на клиентской машине, но доступ пользователя к каждой папке, скрывающейся за ловушкой, проверяется отдельно.

Локация хранится в конфигурационном файле настроек **sssd** (``/etc/sssd/sssd.conf``) в ключе ``ipa_automount_location``. Для проверки корректности настройки автомонтирования в терминале можно воспользоваться командой ``findmnt -t autofs``, которая отображает все точки монтирования в системе. В списке также находятся ловушки монтирования, которые настроены в картах монтирования выбранной ранее локации.

Тип параметра -- простой.

Поле **Локация** содержит название локации автомонтирования. Название локации задается при ее создании одим из способов.

* Через портал управления **FreeIPA** (**Сетевые службы** → **Автомонтирование** → **Расположение автомонтирования**). Подробнее о том, как использовать **FreeIPA** для настройки автомонтирования см. :numref:`automount_freeipa_comfiguration`.
* С помощью утилиты ``ipa``. Подробнее об этом способе можно узнать, введя в терминале запущенного контроллера домена команду ``ipa help automount``.

Поле **Разрешено использование** включает работу с указанной локацией. Допускается установка в поле одного из следующих значений:

* ``true`` -- Включить автомонтирование и применить локацию (по умолчанию);
* ``false`` -- Выключить автомотирование и отключить локацию.

Отключение параметра (перевод атрибута **Состояние** в состояние **Выключено**) не приведет к отключению автомонтирования в системе. Для фактического выключения локации необходимо оставить параметр активным, при этом для локации установить атрибут **Разрешено использование** в значение **false** (**systemd**-процесс ``autofs`` отключен).

Важно обратить внимание, что при удалении локации, которая используется в объекте групповой политики, содержащем параметр **Служба автомонтирования**, через портал управления **ALD Pro*** или ``389ds``, локации, ловушки и все прочие настройки автомонтирования на компьютерах подразделения сброшены не будут.

Применение данного параметра групповой политики подчиняется стандартным механизмам групповых политик (см. Руководство Администратора. Часть 2). Для конфигурации, созданной ранее (см. :numref:`automount_client_machine`), создается групповая политика с параметром **Служба Автомонтирования** и соответствующими аргументами.

.. figure:: images/automount_gp.png
    :name: automount_gp

    Настройки параметра ГП

При нажатии на кнопку **Применить** групповая политика сохраняется, и на связанных с подразделением клиентах она будет применена по таймеру. Можно воспользоваться форсированным применением групповых политик на конкретной машине с помощью команды ``aldpro-gpupdate --gp``. В результате на клиенте будет применена та локация, которая была указана на портале управления в параметре **Локация**:

.. code-block:: bash

    root@client01:/home/admin# findmnt -t autofs
    TARGET                   SOURCE      FSTYPE OPTIONS
    /proc/sys/fs/binfmt_misc systemd-1   autofs rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1387
    /myfolderkey             auto.direct autofs rw,relatime,fd=6,pgrp=213686,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=816641
    /myffffff                auto.direct autofs rw,relatime,fd=6,pgrp=213686,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=816641
    root@client01:/home/admin# aldpro-gpupdate --gp
    Форсированное применение групповых политик
    ...
    root@client01:/home/admin# findmnt -t autofs
    TARGET                   SOURCE        FSTYPE OPTIONS
    /proc/sys/fs/binfmt_misc systemd-1     autofs rw,relatime,fd=30,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=1387
    /testindir11/test        testindirect  autofs rw,relatime,fd=6,pgrp=213936,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=819129
    /test_point              testdirectmap autofs rw,relatime,fd=6,pgrp=213936,timeout=300,minproto=5,maxproto=5,direct,pipe_ino=819129

